import request from '@/utils/request'

// 查询入账列表列表
export function listBill(query) {
  return request({
    url: '/system/bill/list',
    method: 'get',
    params: query
  })
}

// 查询入账列表详细
export function getBill(id) {
  return request({
    url: '/system/bill/' + id,
    method: 'get'
  })
}

// 新增入账列表
export function addBill(data) {
  return request({
    url: '/system/bill',
    method: 'post',
    data: data
  })
}

// 修改入账列表
export function updateBill(data) {
  return request({
    url: '/system/bill',
    method: 'put',
    data: data
  })
}

// 删除入账列表
export function delBill(id) {
  return request({
    url: '/system/bill/' + id,
    method: 'delete'
  })
}

// 手动生成账单
export function generateBill(data) {
  return request({
    url: '/system/bill/generate',
    method: 'post',
    data: data
  })
}

// 根据账单ID查询账单详情列表
export function listBillDetailByBillId(billId) {
  return request({
    url: `/system/billDetail/listByBillId/${billId}`,
    method: 'get'
  })
}
// 根据老人ID和退住日期查询退住当月账单
export function getCheckoutMonthBill(elderlyId, checkoutDate) {
  return request({
    url: '/system/bill/checkoutMonth/' + elderlyId + '/' + checkoutDate,
    method: 'get'
  })
}

// 根据老人ID查询待支付账单（用于欠费卡片）
export function getOverdueBills(elderlyId) {
  return request({
    url: '/system/bill/overdueBills/' + elderlyId,
    method: 'get'
  })
}

// 根据老人ID查询余额信息（用于杂费卡片）
export function getBalanceByElderlyId(elderlyId) {
  return request({
    url: '/system/balance/elderly/' + elderlyId,
    method: 'get'
  })
}

// 更新老人预交款余额（用于账单调整提交后）
export function updatePrepaymentBalance(data) {
  return request({
    url: '/system/balance/updatePrepaymentBalance',
    method: 'put',
    data: data
  })
}

// 测试生成下月账单
export function triggerGenerateMonthlyBills() {
  return request({
    url: '/system/bill-timer-test/trigger-generate-monthly-bills',
    method: 'get'
  })
}

// 获取已入住老人数量
export function getElderlyCount() {
  return request({
    url: '/system/bill-timer-test/elderly-count',
    method: 'get'
  })
}

// 获取已存在账单数量
export function getExistingBillCount(billMonth) {
  return request({
    url: '/system/bill-timer-test/existing-bill-count',
    method: 'get',
    params: { billMonth }
  })
}

// 测试账单生成统计
export function testBillGeneration() {
  return request({
    url: '/system/bill-timer-test/test-bill-generation',
    method: 'get'
  })
}